// OmitThisParameter<Type>

function toHex(this: Number) {
    return this.toString(16);
  }
//    (this:number) =>string
  const fiveToHex: OmitThisParameter<typeof toHex> = toHex.bind(5);
    // ()=>string
  console.log(fiveToHex());

//   ()=>any
  function toHex1() {
    return this.toString(16);
  }
//   ()=>any
  type afdas = OmitThisParameter<typeof toHex1>
  export {}
  type omitThisParameter<T extends (...arg:any)=>any> =  T extends (...arg:infer P)=>infer R?(...arg:P)=>R :never
  type adda = omitThisParameter<typeof toHex>